package hos.http;

/**
 * <p>Title: ProgressListener </p>
 * <p>Description: 进度监听 </p>
 * <p>Company: www.mapuni.com </p>
 *
 * @author : 蔡俊峰
 * @version : 1.0
 * @date : 2023-02-24 18:13
 */
public abstract class ProgressListener {

//    private final String dir;
//    private final String fileName;
//    public ProgressListener(String dir, String name) {
//        this.dir = dir;
//        this.fileName = name;
//    }
//
//    public ProgressListener(String dir) {
//        this(dir, null);
//    }

    public Long interval = 500L;
    // 上次进度变化的的开机时间
    public Long elapsedTime = 0L;

    // 距离上次进度变化的新增字节数
    public Long intervalByteCount = 0L;

//    /**
//     * 获取文件
//     */
//    public File getFile() throws IOException {
//        File dirFile = new File(dir);
//        // 判断downloadDir是否为目录
//        File file;
//        if (dirFile.isDirectory()) {
//            if (fileName == null || fileName.length() == 0) {
//                throw new FileNotFoundException("dir:" + dir + " fileName:" + fileName);
//            } else {
//                file = new File(dir, fileName);
//            }
//        } else {
//            file = dirFile;
//        }
//        if (!file.exists()) file.createNewFile();
//        return file;
//    }

    /**
     * 监听上传/下载进度回调函数
     *
     * @param progress 上传或者下载进度
     */
    public abstract void onProgress(Progress progress);
}
